草庐IT

Java OutOfMemoryError 奇怪的行为

全部标签

php - fgetcsv 在奇怪的地方拆分列

我试图让fgetcsv()读取逗号分隔值文件。通常这会按预期工作,但我遇到了一个文件,其中一些列被拆分为新的数据行,而不是被视为一个列。这是给我带来麻烦的一行示例:pastie.org/5664800产生问题的列是包含多行描述的列。fgetcsv在到达以下行时结束第一次读取:-Length/Width/Height:3.75\""x2.4\""x2.4\""(95.25X60.96x60.96)例如,如果我有代码:ini_set('auto_detect_line_endings',true);while($row=fgetcsv($filepointer,5000,',','"'){

php - 将字符串转换为 float 时出现奇怪的结果

我想将字符串转换为float,但我遇到了一些问题。这是我的代码$dataValue=$item[$data];$dataValue=trim($dataValue);var_dump($dataValue);echo"";$dataValue=str_replace(',','.',$dataValue);var_dump($dataValue);echo"";var_dump(floatval($dataValue));echo"";var_dump(floatval('4.02'));echo"";结果string(7)"4,02"string(7)"4.02"float(4)fl

php - 在 php 中使用 Decorator 的完整继承行为

我一般不太习惯设计pattern,也没用过Decorator。我想要一个可以根据上下文具有不同行为的对象。这些行为在不同的类中定义。我想装饰器可以解决问题。但我需要每个装饰器都可以访问相同的属性,并首先调用子方法,就像继承一样。所以这是我所做的:abstractclassComponent{/***UsedtoaccesslastchainDecorator**@varDecorator*/protected$this;protected$prop1;//Theseproperieshavetobeaccessedinanydecoratorsprotected$prop2;prote

php base64_decode 奇怪的输出

我有一个来自base64_decode函数的非常奇怪的输出。输出是一个长度为18的字符串,但是当我var_dump字符串时......长度是32!这会影响我为这个字符串应用的preg_match函数。知道为什么吗?$input_line=base64_decode('OQA3ADgAMAA5ADgAMgA3ADQAMwA2ADAANwA5ADAAMAAwADAA');var_dump($input_line);输出string(36)"978098274360790000"问候 最佳答案 该字符串有很多不可打印的字符(NUL字节)。

php - fgetcsv 后数组第一行中的奇怪字符

我有一个CSV文件,在本例中,第一个“单元格”只是一个整数9。下一行是第一个“单元格”的10,依此类推。当我执行$array=fgetcsv($file);时,第一行的第一个单元格在值前面有这些奇怪的字符:ˇ˛它打乱了我的数据库导入,因为这个单元格应该只包含一个int。它只发生在第一行的第一个单元格上。关于为什么会发生这种情况以及我可以做些什么来避免这种情况有什么想法吗? 最佳答案 正如其他人所建议的,奇怪的字符是ByteOrderMark(BOM).要删除它,您可以使用以下代码段:if(mb_detect_encoding($va

php - 将此对象添加到此静态数组的奇怪行为

目前我用这段代码进行测试:type=$type;$this->message=$message;self::$_alerts[]=$this;}}$alert=newAlert();$alert->add("warning","test1");$alert->add("error","test2");echo"";print_r(Alert::$_alerts);echo"";但我的结果并不像预期的那样:Array([0]=>AlertObject([type:Alert:private]=>error[message:Alert:private]=>test2)[1]=>AlertO

php - strtr 行为怪异 - 从字符串中删除变音符号

我很难从某些$string中删除变音符号。我的代码是虽然预期输出将是Priliszlutouckykunupeldabelskeody。相反,我收到了非常奇怪的回复:Puiszliucuuluueoudoks�ku�u�s�pd�ld�scbelsks�s�dy.我认为这可能是多字节字符的问题,但我发现strtr是多字节安全的。我的假设错了吗?我错过了什么? 最佳答案 问题是您的输入翻译字符串是输出翻译字符串的两倍(因为Unicode)并且strtr()使用字节而不是字符;在这种情况下,翻译数组会更好:$string="Příliš

php - DateTimeZone 类中的奇怪常量

DateTimeZone类中有奇怪的常量classDateTimeZone{constUTC=1024;constALL=2047;...}我试图找到关于它们的任何信息。也尝试过使用它们:$dtz=newDateTimeZone(DateTimeZone::UTC);//throwsExceptionwithmessage//DateTimeZone::__construct():Unknownorbadtimezone(1024)或$dt=newDatetime('2016-02-0110:00:00',DateTimeZone::UTC);//throwsExceptionwith

php - PHP include 语句的行为和正确使用

我有以下目录和文件:└──project├──index.php└──lib├──file1.php└──file2.php当我按预期在浏览器中尝试时,它确实有效。特别是我认为file1.php中的include语句是有道理的,因为它使用了file2.php相对于index.php位置的路径,其中包括file1.php以及file1.php的代码将被执行的位置。但是,令我惊讶的是,如果我将file1.php中的include语句更改为:include'file2.php';它仍然有效。我想了解为什么这两个include语句都有效,并了解两者中哪个更正确。 最

php - 带有闭包的意外 namespace 行为

使用PHP7.0,考虑以下代码:对我来说,预期的输出是:PHPNotice:Undefinedvariable:closure但不知何故结果是B然后考虑下面这段代码:现在知道(但还不了解)第一个示例的行为,我的预期输出是:A但是我得到了PHPParseerror:syntaxerror,unexpected'$closure'(T_VARIABLE),expectingidentifier(T_STRING)这种行为完全让我感到困惑。问题第1部分:有人可以解释一下我在第一个示例中的期望有什么问题吗?问题第2部分:行为如何与第一个示例一致? 最佳答案